# TencentBlueKing is pleased to support the open source community by making
# 蓝鲸智云 - PaaS 平台 (BlueKing - PaaS System) available.
# Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
# Licensed under the MIT License (the "License"); you may not use this file except
# in compliance with the License. You may obtain a copy of the License at
#
#     http://opensource.org/licenses/MIT
#
# Unless required by applicable law or agreed to in writing, software distributed under
# the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
# either express or implied. See the License for the specific language governing permissions and
# limitations under the License.
#
# We undertake not to change the open source license (MIT license) applicable
# to the current version of the project delivered to anyone in the future.

# Generated by Django 3.2.12 on 2023-10-17 07:01


from django.db import migrations


def forwards(apps, schema_editor):
    """Migrate all DeployConfig.procfile to ModuleProcessSpec"""
    DeployConfig = apps.get_model('modules', 'DeployConfig')
    ModuleProcessSpec = apps.get_model('bkapp_model', 'ModuleProcessSpec')

    for cfg in DeployConfig.objects.exclude(procfile={}):
        module = cfg.module
        for process_name, proc_command in cfg.procfile.items():
            ModuleProcessSpec.objects.update_or_create(
                module=module,
                name=process_name,
                defaults={
                    "proc_command": proc_command
                }
            )


class Migration(migrations.Migration):

    dependencies = [
        ('bkapp_model', '0002_auto_20231016_2121'),
    ]

    operations = [
        migrations.RunPython(code=forwards)
    ]
